package com.woniuxy.service;

import com.woniuxy.entity.*;

import java.util.Date;
import java.util.List;
import java.util.Map;

/*
@author Jan
@create 2020-05-21 17:08
营地集市
*/
public interface LiuService {
    //查询所有集市商品
    List<Product> selectAllProduct(Map map);

    //查询商品详情
    Product selectProductByProId(Map map);

    //查询该proId的所有评论
    List<ProductComment> selectAllCommentByProId(Map map);

    //查询是否收藏
    JsCollection judgeUserCollection(int proId, int userId);

    //收藏
    int AddCollection(JsCollection jsCollection);

    //取消收藏
    int deleteCollection(int proId, int userId);

    //查询该商品是否有购物车
    List<JsShoppingCar> selectProductShoppingCarByUserId(int userId);

    //添加到购物车
    int insertProductShoppingCar(int userId, int proId, int number);

    //查询用户的所有地址
    List<UserAddress> selectAllUserAddressByUserId(int userId);

    //修改用户默认地址
    int updateuserMorenAddress(int newAddressId, int oldAddressId);

    //查询用户默认地址
    UserAddress selectUserMorenAddress(int userId);

    //添加新地址
    int addUserAddress(int userId, String name, String tel, String address, String ifMoRen);

    //根据addressiD删除地址
    int deleteAddress(int addressId);

    //根据UserAddress对象更新
    int updateUserAddress(UserAddress userAddress);

    //根据对象修改购物车页面更改购物车商品数量
    int updateShoppingCar(JsShoppingCar jsShoppingCar);

    //根据id删除购物车
    int deleteShoppingCar(int id);

    //查询该用户所有收藏
    List<JsCollection> selectAllCollection(int userId);

    //根据id删除收藏
    int deleteCollectionById(int id);

    //查询该用户所有订单详情userId,status(条件查询)
    List<ProductOrder> selectAllProductOrder(int userId, int status);

    //删除订单 删除product_order
    int deleteFromProductOrder(int productOrderId);

    //删除订单 删除product_order_detail
    int deleteFromProductOrderDetail(int productOrderId);

    //改变订单status
    int updateProductOrderStatus(int proOrderId, int status);

    //改变订单详情product_order_detail已评价ifcomment为1
    int updateProductOrderDetailIfcomment(int id);

    //增加评论
    int insertProductComment(int proId, int userId, Date time, String comment);

    //新的删除订单方法 将product_order中的ifcomment改为0
    int updateProductOrderIfCommentToZero(int proOrderId);

    //新增订单返回主键
    int addProductOrderGetKey(ProductOrder productOrder);

    //新增订单商品详情
    int addProductOrderDetail(ProductOrderDetail productOrderDetail);

    //改变订单状态为2
    int updateProductOrderStatusTwo(ProductOrder productOrder);

    //减库存
    int updateProductStock(int proId,int number);
}